import axios from 'axios'

import tools from './tools'

// 如果是在 vue-cli 或 create-react-app 脚手架项目中使用
// process.env.XXX 获得环境变量值
// 如果是在 vite 脚手架项目中使用
// import.meta.env.XXX 获取环境变量值
export const baseURL = 'http://127.0.0.1:5173/'
// const baseURL = import.meta.env.MODE === 'development' ? '' : 'http://162.14.108.31:5945'
// export const baseURL = 'http://162.14.108.31:5945'
// 创建实例
const service = axios.create({
  // baseURL: import.meta.env.VITE_BASE_API,
  baseURL,
  timeout: 10000,
})

/**
 * 请示拦截
 */
service.interceptors.request.use(
  config => {
    // 请示头中添加 token 的传递
    const token = tools.getCookie('token')
    if (token) {
      config.headers.Authorization = `Bearer ${token}`
    }
    console.log('config',config)
    return config
  },
  error => Promise.reject(error), // 出现异常，可进行全局错误提示
)

/**
 * 响应拦截
 */
service.interceptors.response.use(
  response => {
    // // 响应状态码为 2xx，表示成功
    // if (response.status >= 200 && response.status < 300) {
    //   // 获取后端响应数据
    //   // return response.data.list

    //   const { code, data, message } = response.data
    //   // 判断后端响应数据的规范
    //   if (code === 2) {
    //     return data
    //   }

    //   // 如果返回的 code 表示的是用户 token 异常的问题
    //   // 则通常前端会清除本地用户登录的状态信息，然后跳转到登录页面重新登录
    //   // TODO...

    //   // 其它问题，则进行全局错误提示
    //   return Promise.reject(message || '响应拦截时出现异常问题')
    // }
    // return null
    return response
  },
  error => Promise.reject(error), // 出现异常，可进行全局错误提示
)

export default service
